整數的交集聯集
請設計程式,利用兩個一維整數陣列儲存兩個正整數集合 A, B ,
兩個集合 A, B 的陣列大小為 20,正整數 1~100;
程式功能為:
(1) 新增集合元素:輸入一集合與一正整數,若新增的元素與該集合內元素有重複,
則無法新增。
(2) 刪除集合元素:輸入一集合與一正整數,若集合中無該元素,無法刪除。
(3) 計算集合是否空集合。
(4) 計算兩個集合的交集。
(5) 計算兩個集合的聯集。
(6) 計算集合是否為另一個集合的子集合。
輸入說明:
每一行第一數字輸入整數指令選項,意義如下:
0: 結束exit
1: 清空 A,輸出 A 和 B 的內容。
2: 清空 B,輸出 A 和 B 的內容。
3: 新增元素到 A,後面接一個正整數為要插入的元素,
輸出 A 和 B 的內容。
4: 新增元素到 B,後面接一個正整數為要新增的元素,
輸出 A 和 B 的內容。
5: 從 A 刪除一個元素,後面接一個正整數為要刪除的元素,
輸出 A 和 B 的內容。
6: 從 B 刪除一個元素,後面接一個正整數為要刪除的元素。
輸出 A 和 B 的內容。
7: 輸出 A, B 聯集。comm
8: 輸出 A, B 交集。
9: 輸出 A 是否為 B 的子集合,若是則輸出 1 ,否則輸出 0。
輸出說明:
輸出集合格式
集合名稱:[集合元素,集合元素,...],中間沒有空白,
元素順序依照輸入先後順序。
交集與聯集的元素順序,先以A的元素順序再以B的元素順序。
每一指令輸出一行。
空集合為所有集合的子集合
Input:
3 4
3 7
4 8
4 9
5 4
6 8
3 8
7
8
9
0
Output:
A:[4,]B:[]
A:[4,7,]B:[]
A:[4,7,]B:[8,]
A:[4,7,]B:[8,9,]
A:[7,]B:[8,9,]
A:[7,]B:[9,]
A:[7,8,]B:[9,]
[7,8,9,]
[]
0
#include <stdio.h>
int main(){
int c,d,a[20],b[20],ai=0,bj=0,j=0,k=0,err=0,e=1,g=0;
while(1){
scanf("%d",&c);
if(c==0)
break;
else if (c==1){
printf("A:[]");
printf("B:[");
for(j=0;j<ai;j++){
a[j]=0;
}
for(j=0;j<bj;j++){
printf("%d,",b[j]);
}
printf("]\n");
ai=0;
}
else if(c==2){
printf("A:[");
for(j=0;j<bj;j++){
b[j]=0;
}
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
printf("]");
printf("B:[]\n");
bj=0;
}
else if(c==3){
scanf("%d",&d);
for(j=0;j<ai;j++){
if(a[j]==d){
break;
}
}
if(j==ai){
a[ai]=d;
ai++;
}
printf("A:[");
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
printf("]B:[");
for(j=0;j<bj;j++){
printf("%d,",b[j]);
}
printf("]\n");
}
else if(c==4){
scanf("%d",&d);
for(j=0;j<bj;j++){
if(d==b[j]){
break;
}
}
if(j==bj){
b[bj]=d;
bj++;
}
printf("A:[");
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
printf("]B:[");
for(j=0;j<bj;j++){
printf("%d,",b[j]);
}
printf("]\n");
}
else if(c==5){
scanf("%d",&d);
for(j=0;j<ai;j++){
if(d==a[j]){
ai--;
break;
}
}
for(k=j;k<ai;k++){
a[k]=a[k+1];
}
printf("A:[");
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
printf("]B:[");
for(j=0;j<bj;j++){
printf("%d,",b[j]);
}
printf("]\n");
}
else if(c==6){
scanf("%d",&d);
for(j=0;j<bj;j++){
if(b[j]==d){
bj--;
break;
}
}
for(k=j;k<bj;k++){
b[k]=b[k+1];
}
printf("A:[");
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
printf("]B:[");
for(j=0;j<bj;j++){
printf("%d,",b[j]);
}
printf("]\n");
}
else if(c==7){
printf("[");
for(j=0;j<ai;j++){
printf("%d,",a[j]);
}
for(k=0;k<bj;k++){
for(j=0;j<ai;j++){
if(b[k]==a[j]){
err=1;
break;
}
}
if(err==1)
err=0;
else
printf("%d,",b[k]);
}
printf("]\n");
}
else if(c==8){
printf("[");
for(j=0;j<ai;j++){
for(k=0;k<bj;k++){
if(a[j]==b[k]){
printf("%d,",a[j]);
break;
}
}
}
printf("]\n");
}
else if(c==9){
if(ai==0){
printf("1\n");
}
else{
for(k=0;k<bj;k++){
for(j=0;j<ai;j++){
if(a[j]==b[k]){
g++;
break;
}
}
}
if(g==ai){
printf("1\n");
}
else if(g!=ai){
g=0;
printf("0\n");
}
}
}
}
}